Hardware virtualization involves use a virtual machine to simulate a hardware system, such as to run simulations of object code developed to run on the hardware system. Such a virtual machine can allow for testing and debugging of the object code when the hardware is not available, such as when the hardware is not yet completed or is unavailable for other reasons. In various applications, multiple hardware systems communicate with each other over one or more data communication buses. For example, typical modern aircraft each include several different types of hardware systems, such as different line replaceable units (LRUs), which can perform various different functions and can communicate through one or more data buses. When performing virtual simulations of multiple hardware systems and the communications between the hardware systems, the virtual machines simulating the hardware systems can run at various speeds that are different from the real-time speeds of the actual hardware systems.
For simplicity and clarity of illustration, the drawing figures illustrate the general manner of construction, and descriptions and details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the present disclosure. Additionally, elements in the drawing figures are not necessarily drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of embodiments of the present disclosure. The same reference numerals in different figures denote the same elements.
The terms “first,” “second,” “third,” “fourth,” and the like in the description and in the claims, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments described herein are, for example, capable of operation in sequences other than those illustrated or otherwise described herein. Furthermore, the terms “include,” and “have,” and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, device, or apparatus that comprises a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such process, method, system, article, device, or apparatus.
The terms “left,” “right,” “front,” “back,” “top,” “bottom,” “over,” “under,” and the like in the description and in the claims, if any, are used for descriptive purposes and not necessarily for describing permanent relative positions. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the apparatus, methods, and/or articles of manufacture described herein are, for example, capable of operation in other orientations than those illustrated or otherwise described herein.
The terms “couple,” “coupled,” “couples,” “coupling,” and the like should be broadly understood and refer to connecting two or more elements mechanically and/or otherwise. Two or more electrical elements may be electrically coupled together, but not be mechanically or otherwise coupled together. Coupling may be for any length of time, e.g., permanent or semi-permanent or only for an instant. “Electrical coupling” and the like should be broadly understood and include electrical coupling of all types. The absence of the word “removably,” “removable,” and the like near the word “coupled,” and the like does not mean that the coupling, etc. in question is or is not removable.
As defined herein, two or more elements are “integral” if they are comprised of the same piece of material. As defined herein, two or more elements are “non-integral” if each is comprised of a different piece of material.
As defined herein, “approximately” can, in some embodiments, mean within plus or minus ten percent of the stated value. In other embodiments, “approximately” can mean within plus or minus five percent of the stated value. In further embodiments, “approximately” can mean within plus or minus three percent of the stated value. In yet other embodiments, “approximately” can mean within plus or minus one percent of the stated value.
As defined herein, “wall time” or “actual wall time” can refer to the actual, real-world time (e.g., the wall-clock time), “wall time duration” or “actual wall time duration” can refer to the actual amount of wall time that elapses during execution, “virtual time” can refer to the current time within a virtual machine, and “virtual wall time duration” can refer to the amount of virtual time elapsed in the execution, which can be the same as the actual wall time duration time that would have elapsed if the execution was performed on the actual hardware system being simulated by the virtual machine.